home *** CD-ROM | disk | FTP | other *** search
-
-
-
- SLD User Commands SLD
-
-
-
- NNAAMMEE
- sld - SPUR link editor
-
- SSYYNNOOPPSSIISS
- sslldd [ --AA _b_a_s_e_f_i_l_e ] [ --dd ] [ --ee _e_n_t_r_y ] [ --jj ] [ --ll_x ]
- [ --LL_d_i_r ] [ --NN ] [ --oo _n_a_m_e ] [ --pp[[dd]] ] [ --pptt ] [ --rr ] [
- --ss ] [ --SS ]
- [ --TT[[tteexxtt]] _h_e_x ] [ --TTddaattaa _h_e_x ] [ --TTssddaattaa hheexx ]
- [ --uu _n_a_m_e ] [ --ww ] [ --xx ] [ --XX ] [ --yy_s_y_m ] [ --zz ]
- file ...
-
- DDEESSCCRRIIPPTTIIOONN
- _s_l_d combines several object programs into one, resolves
- external references, and searches libraries. In the sim-
- plest case several object _f_i_l_es are given, and _s_l_d combines
- them, producing an object module which can be either exe-
- cuted or become the input for a further _s_l_d run. In the
- latter case, the --rr option must be given to preserve the
- relocation bits. The output of _s_l_d is left on a file called
- _a.._o_u_t if not otherwise specified by the --oo option. The out-
- put file is made executable only if no errors occurred dur-
- ing the load, and the --NN and --rr options were not specified.
-
- The argument _f_i_l_es are concatenated in the order specified.
- The entry point of the output is the beginning of the text
- unless the --ee option is specified.
-
- If any _f_i_l_e is a library, it is searched exactly once at the
- point it is encountered in the argument list. Only those
- routines defining an unresolved external reference are
- loaded. The library must have been processed by _r_a_n_l_i_b(1);
- its first member must be a file named `__.SYMDEF', which is
- the dictionary for the library. The dictionary is searched
- iteratively to satisfy as many references as possible.
-
- The symbols __eetteexxtt, __eeddaattaa, __eenndd, __bbppddaattaa, and __bbppbbssss
- (eetteexxtt, eeddaattaa, eenndd, bbppddaattaa, and bbppbbssss in C) are reserved,
- and if referred to, are set to the first location above the
- program, the first location above initialized shared data,
- and the first location above all shared data, the beginning
- of private initialized data, and the beginning of uninitial-
- ized private data, respectively. It is erroneous to define
- these symbols.
-
- OOPPTTIIOONNSS
- Options should appear before the file names, except abbrevi-
- ated library names specified by the --ll option which can
- appear anywhere.
-
- --AA _n_a_m_e
- Incremental loading: the resulting object may be read
- into an already executing program. _n_a_m_e is the name of
-
-
-
- SPUR Release 1.0 14 April 1987 1
-
-
-
-
-
-
- SLD User Commands SLD
-
-
-
- a file that supplies the initial symbol table for the
- resulting object file. Only newly linked material is
- entered into the text and data portions of _a.._o_u_t, but
- the new symbol table will reflect all symbols defined
- before and after the incremental load. This argument
- must appear before any other object file in the argu-
- ment list. One or more of the --TT options may be used
- as well, and will be taken to mean that the newly
- linked segments will commence at the corresponding
- addresses (which must divisible by 8). By default,
- text and private data are concatenated. The default
- starting point for text is the old value of __eenndd. The
- default starting point for shared data is the old value
- of __eeddaattaa__ss.. The values of __eetteexxtt, etc., are the same
- for the resulting object file as they were for _n_a_m_e.
-
- --dd Force definition of common storage even if the --rr flag
- is present.
-
- --ee _e_n_t_r_y
- Define the eentry point: _e_n_t_r_y argument is the name of
- the entry point of the loaded program.
-
- --jj Join private data to the end of text. This is the
- default for the --NN option. The switch is ignored if
- overridden by the --TTddaattaa or --ppdd options.
-
- --ll_x This option is an abbreviation for the library name
- `_d_i_r/lib_x.a'. Here, _x is a string. _D_i_r is one of the
- directories listed in preceding --LL options, or, if no
- such file exists, then one of the directories `/lib',
- `/lib/local', or `/usr/local/lib' (tried in that
- order). A library is searched when its name is encoun-
- tered, so the placement of a --ll is significant.
-
- --LL_d_i_r
- See --ll above.
-
- --NN Do not make the text portion read only or sharable.
- The data portion immediately follows the text, which is
- relocated to begin at address 0 (i.e., not preceded by
- the header). (Use `magic number' 0507.)
-
- --oo _n_a_m_e
- _N_a_m_e is the name of the _s_l_d output file, instead of
- aa..oouutt.
-
- --pp[[dd]]
- `Publicize' private data segment. The initialized
- private data in each object file is concatenated to the
- front of the initialized shareable data of that file,
- and relocated as shareable data. Likewise, the
-
-
-
- SPUR Release 1.0 14 April 1987 2
-
-
-
-
-
-
- SLD User Commands SLD
-
-
-
- uninitialized private data is concatenated to the front
- of the uninitialized shared data. The -Tdata option,
- if present, is ignored. The -Tsdata option is honored,
- and governs the position of the combined segment.
- The names __eeddaattaa and __eenndd (eeddaattaa and eenndd in C) are set
- to the values of _edata_s and _end_s, respectively.
-
- --pptt Publicize text segment. The text segments of the
- object files are concatenated together at the from of
- the initialized shareable data of that file, and relo-
- cated as shareable data. The -Ttext option, if
- present, only affects the placement of private data
- (when this follows the text segment), and has no effect
- on the placement of text. The -Tsdata option is
- honored, and governs the position of the combined seg-
- ment.
-
- --rr Generate relocation bits in the output file so that it
- can be the subject of another _s_l_d run. This flag also
- prevents final definitions from being given to common
- symbols, and suppresses the `undefined symbol' diagnos-
- tics. It implies the --NN option.
-
- --ss Strip the output, that is, remove the symbol table and
- relocation bits to save space (but impair the useful-
- ness of the debuggers). This information can also be
- removed by _s_t_r_i_p(1).
-
- --SS Strip the output by removing all symbols except locals
- and globals.
-
- --TT[[tteexxtt]] _h_e_x
- Relocate as if the text (i.e., exclusive of the header)
- started at address _h_e_x (a hexadecimal number, possibly
- with preceding `0x'). This does _n_o_t affect where the
- text is actually loaded; loading the file in the usual
- way will place the text segment at its standard loca-
- tion, relocated as if it were at address _h_e_x.
-
- --TTddaattaa_h_e_x
- Relocate the private data segment as if it started at
- location _h_e_x (a hexadecimal number as above). Again,
- this does not affect where the private data segments
- are actually loaded.
-
- --TTssddaattaa_h_e_x
- Relocate the shared data segment as if it started at
- location _h_e_x (a hexadecimal number as above). This
- does not affect where the shared data segments are
- actually loaded.
-
- --uu _n_a_m_e
-
-
-
- SPUR Release 1.0 14 April 1987 3
-
-
-
-
-
-
- SLD User Commands SLD
-
-
-
- Enter _n_a_m_e as an uundefined symbol. This is useful for
- loading wholly from a library, since initially the sym-
- bol table is empty and an unresolved reference is
- needed to force the loading of the first routine.
-
- --ww Each time an object file is automatically included from
- a library, indicate the name of the object file and a
- symbol that caused it to be loaded.
-
- --xx Do not preserve local (non-..gglloobbll) symbols in the out-
- put symbol table; only enter external symbols. This
- option saves some space in the output file.
-
- --XX Save local symbols except for those whose names begin
- with `L'. This option is used by _c_c(1) to discard
- internally-generated labels while retaining symbols
- local to routines.
-
- --yy_s_y_m
- Display each file in which _s_y_m appears, its type and
- whether the file defines or references it. Many such
- options may be given to trace many symbols. It is usu-
- ally necessary to begin _s_y_m with an `_', as external C,
- FORTRAN and Pascal variables begin with underscores.
-
- --zz Arrange for the process to be loaded on demand from the
- resulting executable file (0513 `magic number') rather
- than preloaded. This is the default (and is present
- here only for compatibility). In the resulting object
- file, the sizes of the text segment and initialized
- data segments are multiples of the page size (padded
- with nulls, if necessary). When loaded in the usual
- way, they all start on page boundaries, allowing easy
- demand loading from the object file. The header is
- incorporated in the first page of text. With this for-
- mat the first few BSS segment symbols may actually end
- up in the initialized data segment, and likewise for
- SBSS segment symbols and the shared data segment; this
- is to avoid wasting the space resulting from rounding
- up the data segment sizes.
-
- FFIILLEESS
- /lib/lib*.a libraries
- /usr/lib/lib*.a more libraries
- /usr/local/lib/lib*.a still more libraries
- a.out output file
-
- SSEEEE AALLSSOO
- sas(1), ar(1), cc(1), ranlib(1), strip(1)
-
-
-
-
-
-
- SPUR Release 1.0 14 April 1987 4
-
-
-
-